/**
*  \brief A general purpuse mathematical library for easier scientific computing on C++.
*  \author Marco Gregnanin
*  \author Riccardo Marson
*  \version 1.0.3a
*  \date    31 January 2011
*/

#ifndef MATHLIB_H
#define MATHLIB_H


#include "MathLib_global.h"
#include <QObject>
#include <math.h>

#ifdef DEBUG
    #include <stdio.h>
#endif


#define LIB_NAME    "MathLib"
#define DIV         " -> "
#define ENABLED_CHECKS              // Define this macro, in order to enable consistency checks on the inputs


// Error messages
#define MEMORY_ERROR            QObject::tr( "Unable to allocate memory." )
#define OPERATION_NOT_SUPPORTED QObject::tr( "Operation not supported for dimensions > 2." )


// Macros
#define THROW_EXCEPTION( classname, message )   QString *exception = new QString( QString( LIB_NAME""DIV ) + classname + QString( DIV ) + message ); throw exception


#endif // MATHLIB_H
